﻿#include <iostream>
#include <vector>

using namespace std;

// 辅助函数：计算两个数的最大公约数
int gcd(int a, int b) {
	return b == 0 ? a : gcd(b, a % b);
}

// 重载函数：计算两个整数的最大公约数
int commonDivisor(int x1, int x2) {
	return gcd(x1, x2);
}

// 重载函数：计算三个整数的最大公约数
int commonDivisor(int x1, int x2, int x3) {
	return gcd(gcd(x1, x2), x3);
}

// 重载函数：计算四个整数的最大公约数
int commonDivisor(int x1, int x2, int x3, int x4) {
	return gcd(gcd(x1, x2), gcd(x3, x4));
}

int main() {
	int numCount;
	cout << "请输入整数的数量（2、3或4）: ";
	cin >> numCount;

	vector<int> numbers(numCount);
	cout << "请输入 " << numCount << " 个整数: ";
	for (int& num : numbers) {
		cin >> num;
	}

	int result;
	switch (numCount) {
	case 2:
		result = commonDivisor(numbers[0], numbers[1]);
		break;
	case 3:
		result = commonDivisor(numbers[0], numbers[1], numbers[2]);
		break;
	case 4:
		result = commonDivisor(numbers[0], numbers[1], numbers[2], numbers[3]);
		break;
	default:
		cout << "输入的整数数量不正确。" << endl;
		return 1;
	}

	cout << "整数" << numbers[0];
	for (int i = 1; i < numCount; ++i) {
		cout << "," << numbers[i];
	}
	cout << " 的最大公约数为: " << result << endl;

	return 0;
}